11 - Inteligentna kamera
Wprowadzenie do przetwarzania obrazów
Politechnika Poznańska, Instytut Robotyki i Inteligencji Maszynowej
Ćwiczenie laboratoryjne 11: inteligentna kamera
Powrót do spisu treści ćwiczeń laboratoryjnych
Wstęp
Wraz z rozwojem konwolucyjnych sieci neuronowych i głębokiego uczenia maszynowego, zaczęło powstawać wiele urządzeń, które pozwalają przyspieszać wnioskowanie takich sieci. Urządzenia te cechują się najczęściej bardzo dobrym stosunkiem wydajności do poboru energii. Niektóre urządzenia przyjmują postać pendrive jak Intel NCS 2, a niektóre niewielkich dysków przenośnych jak Google Coral. Powstają obecnie również produkty, które nie tylko przyspieszają wnioskowanie, ale potrafią równocześnie rejestrować obraz.
Przykładem takiego produktu jest kamera OpenCV AI Kit: OAK—1, która potrafi nagrywać wideo w 4k@30fps i wyposażona jest w zintegrowane jednostki przetwarzające obraz Intel Myriad X. Podczas tego laboratorium, zostanie ona wykorzystana do zbudowania rzeczywistej aplikacji systemu wizyjnego.
Kolejnym przykładem jest kamera Luxonis OAK-D-LITE, która dodatkowo posiada wbudowany czujnik głębi. Dzięki temu możliwe jest wykrywanie obiektów w przestrzeni 3D.
Dane
Pobierz paczkę ze skryptami do zadań.
Zadanie
Podłącz kamerę Luxonis OAK-D-LITE do komputera. Uruchom program pozwalający na wizualizację głębi i inferencję sieci neuronowej, wpisując w terminalu:
depthai-viewer
Zaobserwuj działanie kamery. Zwróć uwagę na to, jakie informacje są wyświetlane na ekranie.
Zadanie
Wykorzystując klasyfikator z zajęć o sieciach neuronowych (instrukcja C), przygotuj odpowiednio model do wykorzystania jednostki wnioskującej w kamerze i uruchom aplikację wizualizującą.
Kroki:
Zmodyfikuj skrypt
00_convert_onnx_to_blob.py
ustawiając ścieżkę do swojego modelu. Zwróć uwagę na nazwę pliku. Postaraj się zachować oryginalne nazewnictwoclf_resnet18.onnx
.Uruchom skrypt. Jeśli wszystko się powiodło, w terminalu powinna pojawić się wiadomość:
Downloading ../_data/11/clf_resnet18_openvino_2021.4_5shave.blob... Success! Success! Model path: .../clf_resnet18_openvino_2021.4_5shave.blob
Zmodyfikuj w programie
scripts/11/01_own_classifier_infer.py
zmiennąlabels
ustawiając własne etykiety klas.Podłącz kamerę OpenCV AI Kit: OAK—1 do komputera (podłącz kamerę mono; kamera stereo może nie działać poprawnie).
Uruchom program i zweryfikuj jego działanie korzystając z inteligentnej kamery. Przykładowe, docelowe działanie programu przedstawiono na filmie.
Zadania do samodzielnej realizacji
- Uruchom skrypt
scripts/11/gesture_recogniotion/main.py
i zweryfikuj działanie programu. - Twoim zadaniem jest sterowanie wirtualnym pojazdem z wykorzystaniem
gestów dłoni. Dlatego zmodyfikuj funkcję
recognize_gesture
ze skryptuscripts/11/gesture_recogniotion/Gesture.py
w taki sposób, żeby na podstawie gestu (odpowiedniego ułożenia palców dłoni) wykonywać jedną z 4 akcji:PASS
(dłoń otwarta),ACTION
(pięść zaciśnięta),LEFT
(otwarty tylko palec wskazujący),RIGHT
(otwarte dwa palce, tzw. Victoria).
UWAGA Wykorzystaj do tego informację o zgiętych
palcach. Zbuduj odpowiednie instrukcje warunkowe, które do zmiennej
r.gesture
przypiszą odpowiednią akcję.
Przykładowe działanie programu przedstawiono na filmie.
Zadania dodatkowe
Zapoznaj się z innymi, przykładowymi programami stworzonymi do inteligentnej kamery przez programistów depthai. Może któreś zastosowanie cię zainteresowało? Sprawdź demo!